from django.core.management.base import BaseCommand
from django.db import transaction
from guide.models import WasteClassification


BASE_ITEMS = [
    ('塑料瓶', '可回收物', '用于回收处理'),
    ('玻璃瓶', '可回收物', '清洗后回收'),
    ('旧报纸', '可回收物', '叠放后回收'),
    ('废纸箱', '可回收物', '压扁后回收'),
    ('铝罐', '可回收物', '清空后回收'),
    ('电池', '有害垃圾', '投放至有害垃圾专用回收箱'),
    ('荧光灯管', '有害垃圾', '避免破碎，交由专门机构处理'),
    ('过期药品', '有害垃圾', '交至指定药店或回收点'),
    ('菜叶', '厨余垃圾', '湿垃圾投放'),
    ('果皮', '厨余垃圾', '湿垃圾投放'),
    ('剩饭', '厨余垃圾', '湿垃圾投放'),
    ('茶叶渣', '厨余垃圾', '湿垃圾投放'),
    ('纸巾', '其他垃圾', '不可回收，投放其他垃圾'),
    ('口罩', '其他垃圾', '密封后投放其他垃圾'),
    ('一次性餐具', '其他垃圾', '清理后投放其他垃圾'),
    ('陶瓷碎片', '其他垃圾', '包裹后投放其他垃圾'),
    ('旧衣服', '可回收物', '可捐赠或投放旧衣回收箱'),
    ('快递袋', '可回收物', '清理后回收'),
    ('纸杯', '其他垃圾', '不可回收，投放其他垃圾'),
    ('吸管', '其他垃圾', '不可回收，投放其他垃圾'),
    ('油污纸', '其他垃圾', '不可回收，投放其他垃圾'),
    ('瓜子壳', '厨余垃圾', '湿垃圾投放'),
    ('蛋壳', '厨余垃圾', '湿垃圾投放'),
    ('骨头', '厨余垃圾', '湿垃圾投放'),
]

CITIES = ['北京', '上海', '广州', '深圳']


class Command(BaseCommand):
    help = '初始化垃圾分类数据库（生成100+条常见垃圾）'

    @transaction.atomic
    def handle(self, *args, **options):
        created = 0
        for city in CITIES:
            for name, category, desc in BASE_ITEMS:
                obj, is_created = WasteClassification.objects.get_or_create(
                    item_name=name,
                    city=city,
                    defaults={'category': category, 'description': desc}
                )
                if is_created:
                    created += 1
        self.stdout.write(self.style.SUCCESS(f'Initialized {created} WasteClassification records'))